package com.gzhryc.shared_device.oem.micro.api.dto.xcx.v1.cdcz;

import com.gzhryc.common.api.SecurityResponse;
import com.gzhryc.shared_device.cdcz.code.dao.models.CDCZPowerIntervalMoneyContent;

import java.io.Serializable;
import java.util.List;

public class CDCZScanGetResponse extends SecurityResponse<CDCZScanGetResponse.Body> {

    private static final long serialVersionUID = 1L;

    public CDCZScanGetResponse() {
        this.body = new Body();
    }

    public CDCZScanGetResponse(Integer code) {
        this.body = new Body();
        this.code = code;
    }

    public CDCZScanGetResponse(Integer code, String msg) {
        this.body = new Body();
        this.code = code;
        this.msg = msg;
    }

    public static class Body implements Serializable {

        private static final long serialVersionUID = 1L;

        private String deviceSn;
        private Integer state;              //状态，1:在线，2:离线，3:充电饱和
        private List<SlotItem> slotList;
        private List<String> timeSetMealList;
        private List<PimItem> pimItems;

        private ElectricityMeterCost electricityMeterCost;

        public String getDeviceSn() {
            return deviceSn;
        }

        public void setDeviceSn(String deviceSn) {
            this.deviceSn = deviceSn;
        }

        public Integer getState() {
            return state;
        }

        public void setState(Integer state) {
            this.state = state;
        }

        public List<SlotItem> getSlotList() {
            return slotList;
        }

        public void setSlotList(List<SlotItem> slotList) {
            this.slotList = slotList;
        }

        public List<String> getTimeSetMealList() {
            return timeSetMealList;
        }

        public void setTimeSetMealList(List<String> timeSetMealList) {
            this.timeSetMealList = timeSetMealList;
        }

        public List<PimItem> getPimItems() {
            return pimItems;
        }

        public void setPimItems(List<PimItem> pimItems) {
            this.pimItems = pimItems;
        }

        public ElectricityMeterCost getElectricityMeterCost() {
            return electricityMeterCost;
        }

        public void setElectricityMeterCost(ElectricityMeterCost electricityMeterCost) {
            this.electricityMeterCost = electricityMeterCost;
        }
    }

    public static class SlotItem {

        private Integer slotNum;
        private Integer state;  //1:空闲，2:繁忙，3:故障

        public Integer getSlotNum() {
            return slotNum;
        }

        public void setSlotNum(Integer slotNum) {
            this.slotNum = slotNum;
        }

        public Integer getState() {
            return state;
        }

        public void setState(Integer state) {
            this.state = state;
        }
    }

    public static class ElectricityMeterCost {

        private Integer walletState;            //1:可用，2:缺钱
        private String minDepositMoney;         //最低钱包余额
        private Integer maxChargeTimesMinute;   //最大充电时间
        private Double maxChargeElectricity;    //最大充电量

        public Integer getWalletState() {
            return walletState;
        }

        public void setWalletState(Integer walletState) {
            this.walletState = walletState;
        }

        public String getMinDepositMoney() {
            return minDepositMoney;
        }

        public void setMinDepositMoney(String minDepositMoney) {
            this.minDepositMoney = minDepositMoney;
        }

        public Integer getMaxChargeTimesMinute() {
            return maxChargeTimesMinute;
        }

        public void setMaxChargeTimesMinute(Integer maxChargeTimesMinute) {
            this.maxChargeTimesMinute = maxChargeTimesMinute;
        }

        public Double getMaxChargeElectricity() {
            return maxChargeElectricity;
        }

        public void setMaxChargeElectricity(Double maxChargeElectricity) {
            this.maxChargeElectricity = maxChargeElectricity;
        }
    }

    public static class PimItem {

        private Double minPower;
        private Double maxPower;
        private String moneyStr;

        public Double getMinPower() {
            return minPower;
        }

        public void setMinPower(Double minPower) {
            this.minPower = minPower;
        }

        public Double getMaxPower() {
            return maxPower;
        }

        public void setMaxPower(Double maxPower) {
            this.maxPower = maxPower;
        }

        public String getMoneyStr() {
            return moneyStr;
        }

        public void setMoneyStr(String moneyStr) {
            this.moneyStr = moneyStr;
        }
    }
}
